package com.asura.framework.rulemodel.engine;

import java.util.List;

import com.asura.framework.rulemodel.TreeNode;

/**
 * 规则树节点引擎. 统一管理内存中的规则树节点.
 * @author a123
 *
 */
public interface RuleTreeEngine {

	/**
	 * 获取树根节点.
	 * 
	 * @return
	 */
	TreeNode getRootNode( );

	/**
	 * 获取指定的节点树.
	 * 
	 * @param nodeName
	 *            数节点名称, 规则名称.
	 * @return
	 */
	TreeNode getTreeNode( String nodeName );

	/**
	 * 根据规则组获取树节点列表.
	 * 
	 * @param group
	 * @return
	 */
	List< TreeNode > getTreeNodesByGroup( String group );

	/**
	 * 添加节点.
	 * 
	 * @param node
	 *            待添加的节点.
	 */
	void addTreeNode( TreeNode node );

	/**
	 * 是否包含该节点.
	 * 
	 * @param nodeName
	 *            待检索的节点名
	 * @return
	 */
	boolean contains( String nodeName );
}
